package com.rpi;


public class PlayGround {

//	@Test
//	public void test2() throws TransformationException, IOException {
//		Genson genson = new Genson.Builder().setWithClassMetadata(true).setUseFields(true).create();
//		String soundFile = "/opt/sound/flat.mp3";
//		String json = genson.serialize(new GpioListenerConfig("GPIO_02", new AsyncBell(soundFile)));
//		System.out.println(json);
//
//		GpioListenerConfig result = genson.deserialize(json, GpioListenerConfig.class);
//
//		Object obj = result.getCommandListener();
//		Assert.assertTrue(obj instanceof AsyncBell);
//		AsyncBell bell = (AsyncBell) obj;
//		System.out.println("soundfile: " + bell.getSoundFile());
//		Assert.assertEquals(soundFile, bell.getSoundFile());
//	}

	// @Test
	// public void gson() throws IOException {
	// final String file = "/tmp/martinfile.json";
	//
	// // Gson gson = new Gson();
	// GsonBuilder b = new GsonBuilder();
	// b.addSerializationExclusionStrategy(new RpiExclusionStrategy());
	// b.addDeserializationExclusionStrategy(new RpiExclusionStrategy());
	// b.setPrettyPrinting();
	// Gson gson = b.create();
	//
	// // List<RpiConfigElement<? extends GpioCommandBase>> configList = new
	// ArrayList<RpiConfigElement<? extends GpioCommandBase>>();
	// // configList.add(new RpiConfigElement<AsyncBell>("GPIO_02", new
	// AsyncBell("/opt/sound/flat.mp3")));
	// // String json = gson.toJson(configList);
	//
	// String json = gson.toJson(new RpiConfigElement("GPIO_02", new
	// AsyncBell("/opt/sound/flat.mp3")));
	// // write converted json data to a file named "file.json"
	// FileWriter writer = new FileWriter(file);
	// writer.write(json);
	// writer.close();
	//
	// BufferedReader br = new BufferedReader(new FileReader(file));
	//
	// RpiConfigElement result = gson.fromJson(br, RpiConfigElement.class);
	// System.out.println(result.getCommandListener().getClass().getSimpleName());
	// // convert the json string back to object
	// // List<RpiConfigElement<? extends GpioCommandBase>> result =
	// gson.fromJson(br, new TypeToken<List<RpiConfigElement<?extends
	// GpioCommandBase>>>() {
	// // }.getType());
	// //
	// // for(RpiConfigElement<?extends GpioCommandBase> element : result) {
	// // System.out.println("Config element - command " +
	// element.getCommandListener().getClass().getSimpleName());
	// // }
	//
	// }
}
